www.gusucode.com > VC 图书管理系统源码程序 > VC 图书管理系统/VC 图书管理系统/图书管理系统/ReaderQryDlg.cpp

    // ReaderQryDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Library.h"
#include "ReaderQryDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CReaderQryDlg dialog


CReaderQryDlg::CReaderQryDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CReaderQryDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CReaderQryDlg)
	m_strReaderID = _T("");
	m_strReaderName = _T("");
	m_strReaderIDCard = _T("");
	//}}AFX_DATA_INIT
}


void CReaderQryDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CReaderQryDlg)
	DDX_Control(pDX, IDC_LISTBOOK, m_lstBook);
	DDX_Text(pDX, IDC_READERID, m_strReaderID);
	DDV_MaxChars(pDX, m_strReaderID, 8);
	DDX_Text(pDX, IDC_READERNAME, m_strReaderName);
	DDX_Text(pDX, IDC_READERIDCARD, m_strReaderIDCard);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CReaderQryDlg, CDialog)
	//{{AFX_MSG_MAP(CReaderQryDlg)
	ON_BN_CLICKED(IDC_QUERY, OnQuery)
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CReaderQryDlg message handlers

void CReaderQryDlg::OnQuery() 
{
	// TODO: Add your control notification handler code here
	m_lstBook.DeleteAllItems();
	UpdateData(TRUE);
	m_strReaderName = "";
	m_strReaderIDCard = "";
	UpdateData(FALSE);
	if (m_strReaderID == "")
	{
		::AfxMessageBox("请输入读者ID");
		return;
	}
	
	m_ReaderSet.m_strFilter="READER_ID='"+m_strReaderID+"'";
	m_ReaderSet.Open();
	if (m_ReaderSet.IsEOF())
	{
		AfxMessageBox("此读者ID号码不存在!");
		m_ReaderSet.Close();
		return;
	}
	m_strReaderName = m_ReaderSet.m_NAME ;
	m_strReaderIDCard = m_ReaderSet.m_IDCARD ;
	m_BorrowInfo.m_strFilter = "BOOK.BOOK_ID = BORROW.BOOK_ID AND READER_ID='" + m_strReaderID + "'";
	m_BorrowInfo.Open();
	LVITEM			lvi;
	int				nNumofCount;
	CString			m_strTime;
	while (!m_BorrowInfo.IsEOF())
	{

		lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
		nNumofCount = m_lstBook.GetItemCount();
		lvi.iItem = nNumofCount;
		lvi.iSubItem = 0;
		lvi.pszText = m_BorrowInfo.m_strBookName.GetBuffer(0) ;
		m_lstBook.InsertItem(&lvi);
		m_strTime = m_BorrowInfo.m_dtBorrowDate.Format("%D");

		m_lstBook.SetItemText(nNumofCount,1, m_strTime);

		m_BorrowInfo.MoveNext();
	}
	UpdateData(FALSE);
	m_BorrowInfo.Close();
	m_ReaderSet.Close();


}

BOOL CReaderQryDlg::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	return CDialog::Create(IDD, pParentWnd);
}

int CReaderQryDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CDialog::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	
	return 0;
}

void CReaderQryDlg::AddExStyle(DWORD dwNewStyle)
{
	DWORD dwStyle = ::SendMessage (m_lstBook.m_hWnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
	dwStyle |= dwNewStyle;

	::SendMessage (m_lstBook.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dwStyle);

}

BOOL CReaderQryDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_lstBook.ModifyStyleEx(0, WS_EX_CLIENTEDGE);
	AddExStyle(LVS_EX_FULLROWSELECT | LVS_OWNERDRAWFIXED);
	
	LV_COLUMN	lvc;
	int			i;

	lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
	CString	strTemp[2] = {"书名", "借书日期"};
	int size[2] = {200,150};
	for(i = 0; i < 2; i++)
	{
		lvc.iSubItem = i;
		lvc.pszText = (char*)(LPCTSTR)strTemp[i];
		lvc.cx = size[i];
		lvc.fmt = LVCFMT_LEFT;
		m_lstBook.InsertColumn(i, &lvc);
	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}